Most printers incorporate several printer devices, such as input trays, stackers, staplers, sorters, etc., to provide users with a comprehensive printing system. These devices are controlled by a paper handler controller (sometimes referred to simply as a controller) that is integrated into hardware and firmware that is resident within printer memory. The paper handler controller (PHC) coordinates the functions of the devices according to user instructions.
For example, say that a user wants to print several copies of a multi-page document on both sides of letter-size paper and collate and staple the printed documents. The paper handler controller receives instructions from the user and commands appropriate printer devices to function to print the documents appropriately.
In the present example, the paper handler controller must transmit commands that direct an input tray to load paper from a letter-size paper tray, a duplexer to guide each sheet of paper so that both sides are utilized; a sorter to sort the output pages, and a stapler to staple the final collated documents.
The PHC communicates with the devices using commands that conform to a certain protocol, the protocol being compatible with the PHC and the devices. A protocol is a set of rules or standards designed to enable devices conforming to the protocol to exchange information with each other. Some protocols also support peer-to-peer communications wherein the devices communicate directly with each other by transmitting and receiving commands sent directly to and from devices. In addition, some protocols support a broadcast mode. In broadcast mode, a command or set of commands is transmitted to more than one device from the PHC or a device.
A problem can arise if the PHC or one or more of the devices is upgraded to a newer version of the protocol. A new version of the protocol necessarily means that some commands have changed since the original version and/or some commands have been added that were not included in the original version. When this happens, the PHC may no longer be able to communicate effectively with all the devices, and/or any upgraded device may not be able to communicate effectively with the PHC and the other devices. The problem may be compounded as additional versions of the protocol are released and the PHC/devices are upgraded.
When a new version of a protocol is released for use in a PHC, the new version of the protocol supports—or is compatible with—not only the new version, but any previous versions as well. This type of compatibility is referred to as backward compatibility, i.e., more advanced versions of the protocol can still communicate with less advanced, or older, versions of the protocol. This may be done by including complete command sets for each version of the protocol, or by including the complete command set for one version of the protocol with commands from other versions of the protocol that are not included in the full command set.
If a device is upgraded to a new version of a protocol, the PHC should also be upgraded. Otherwise, the PHC may not be able to communicate fully with the device and the device would not function properly. Therefore, a printer's PHC should always include the newest version of the protocol used by the printer, as compared to the printer devices. In this way, the PHC is always compatible with the printer devices.
Another problem arises in printers that support peer-to-peer or broadcast communications when a device is upgraded to a newer version of a protocol than is used by other devices. The device supporting the newer version of the protocol can receive communications from the other devices (assuming the newer version of the protocol is backward compatible with the older version(s) of the protocol), but the devices supporting the older protocol may not understand new or changed commands from the device that supports the newer version of the protocol. Therefore, if one device is upgraded in such a printer, all devices should be upgraded.